約 5,699,507 件
https://w.atwiki.jp/220yearsafterlove/pages/63.html
http //20yearsafterlove.blog111.fc2.com/
https://w.atwiki.jp/uselesswebsite/pages/17.html
http //www.koalastothemax.com/ 表示された丸にカーソルを合わせると、丸が4等分されるサイト 最終的にはコアラの親子の写真になる。 その後、URLの入力欄が表示され、このサイトを模したオリジナルのサイトを作ることができる。
https://w.atwiki.jp/freememo/pages/48.html
HINTERNET g_hInet; HINTERNET g_hURL; //===========================================================================// /*! @brief WinInetライブラリ初期処理 @param[in] lpszURL 対象URL @return 成否 */ //===========================================================================// BOOL InitWinInet(LPCTSTR lpszURL) { // WinInetライブラリ開始 g_hInet = InternetOpen( L"", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); if (g_hInet == NULL) { return FALSE; } // セッションオープン g_hURL = InternetOpenUrl(g_hInet, lpszURL, NULL, 0, 0, 0); if (g_hURL == NULL) { return FALSE; } return TRUE; } //===========================================================================// /*! @brief WinInetライブラリ終了処理 @return 無し */ //===========================================================================// void TerminateWinInet() { // WinInet関連ハンドル開放 if (g_hURL) { InternetCloseHandle(g_hURL); } if (g_hInet) { InternetCloseHandle(g_hInet); } } //===========================================================================// /*! @brief HTTPソース取得 @param[in] lpszURL 対象URL @param[out] lpOutBuffer HTTPソースバッファ @param[in/out] hMem メモリハンドル @return 成否 */ //===========================================================================// BOOL WINAPI NMAPI_GetHttpHeader(LPCTSTR lpszURL, LPTSTR lpOutBuffer, HGLOBAL hMem) { BOOL bRet = FALSE; // WinInetライブラリ初期処理 if (! InitWinInet(lpszURL)) { goto END; } // バッファバイト数取得 DWORD dwSize = 0; if (! HttpQueryInfo(g_hURL, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID)NULL, dwSize, NULL)) { if (GetLastError()==ERROR_HTTP_HEADER_NOT_FOUND) { goto END; } } // メモリ再割り当て hMem = GlobalReAlloc(hMem, (SIZE_T)dwSize+1, GMEM_MOVEABLE); if (hMem == NULL) { goto END; } lpOutBuffer = (TCHAR *)GlobalLock(hMem); if (lpOutBuffer == NULL) { goto END; } // HTTPヘッダ情報取得 if (! HttpQueryInfo(g_hURL, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID)lpOutBuffer, dwSize, NULL)) { goto END; } bRet = TRUE; END // WinInetライブラリ終了処理 TerminateWinInet(); return bRet; } //===========================================================================// //呼び出し側 //===========================================================================// { HGLOBAL hMem = GlobalAlloc(GHND, sizeof(TCHAR)); CHAR* lpszSource = (CHAR*)GlobalLock(hMem); if (NMAPI_GetHttpSource(strURL, lpszSource, hMem)) { ・・・ ・・・ ・・・ } // メモリ開放 GlobalUnlock(hMem); GlobalFree(hMem); }
https://w.atwiki.jp/lsl_japan/pages/39.html
イベント http_response http_response(key request_id, integer status, list metadata, string body) このイベントハンドラはllHTTPRequest()関数で送信したリクエストに対して HTTPレスポンスを受信したときに発生します。 また、llHTTPRequest()関数で送信したリクエストに対してリクエストが失敗していたり、タイムアウトした時にも発生します。 request_idにはllHTTPRequest()関数の呼び出しが発生したときにllHTTPRequest()関数が返したUUIDの値が格納されます。 statusはHTTPレスポンスが返されたのか、リクエストが失敗した原因を示すHTTPステータスコードが設定されます。 499はTCPコネクションの確立が失敗したときや、コネクションが確立されても、それが無効なHTTP応答あった場合を示します。 ま、499は相手が無効なSSL証明書を持っている場合や、証明をつけてあっても、 一定時間(60秒に設定されることが多いらしい)以上経過して応答がなかった場合も499を受け取ります。 503はDNSへの問い合わせが失敗したことを示します。 #本来のHTTPにおいてはService Unavailable(サービス利用負荷)と呼ばれ、 サーバはサーバの一時的な過負荷あるいはメインテナンスのために、 現在、リクエストを扱うことができないことを意味します。 metadataは応答について説明するキーと値の組のペアがリストとして格納されます。 現在、返されるであろう唯一のキーはHTTP_BODY_TRUNCATEDです。 Valueにはイベントの受信容量の制限によって切り捨てられた情報のバイト数を示します。 応答がテキストmime-typeを指定する「content-type 」ヘッダーを含んでいる限り,bodyはHTTP応答のbodyに設定されます。 mime-typeが指定されないか、タイプがテキストタイプでないなら、bodyは「"Unsupported or unknown Content-Type." (サポートされないか未知のコンテントタイプ)」に設定されます。 「content-type 」ヘッダーで文字セットを指定すると、ボディーはUTF-8に変換されて応答するでしょう、また、サポートされてない文字コードが指定された場合は「サポートされないか未知の文字集合」に設定されるでしょう。 ボディーは現在、2048バイト以内に制限されます。 "\n"はLSLではコンパイル時に「改行文字」に変換されることを忘れないでください。 そして、あなたのサーバーが"\n"以外の文字を「改行文字」として定義されている可能性があります。 あなたは「改行」を加える適切な方法がないかどうかあなたのサーバのドキュメンテーションをチェックするべきです。 あなたのマイレージは変わるかもしれません。-Ice あなたのWEBサーバーからデーターを得る簡単なスクリプト例 //This script requests from our data source (URL) and echoes out what it sends to the owner of the script //I use this to test my PHP apps personally, it s a simple debugging application so I release it publicly //You may use, redistribute, modify, copy however you feel would be useful string URL="http //www.secondlife.com/httprequest/homepage.php"; key http;//This stores the HTTP request we send. default { touch_start(integer foo) { http=llHTTPRequest(URL, [] ,""); } http_response(key id,integer status, list meta, string body) { if(http==id) { integer i; list lbody=llParseString2List(body,["\n"],[]); integer count=llGetListLength(lbody); //This turns newline characters char(10) //into new lines in chat //These are Unix/LSL style end of lines, //use \r\n in place of \n for //Windows style end of line from web server. for(i=0;i count;i++) { llOwnerSay(llList2String(lbody,i)); } } } }
https://w.atwiki.jp/mccc/pages/47.html
このページではHTTP APIについて解説する。 参考資料: HTTP API 執筆時のバージョン: ComputerCraft 1.56 for Minecraft 1.6.2 HTTP API各メソッドのヘッダ request get post HTTP API HTTPによりインターネット上のサーバーへGET/POSTリクエストを送信し、ウェブサイトをダウンロードすることができるAPI。 このAPIを利用するには、前もってComputerCraft.cfgのenableAPI_httpをtrueにしておく必要がある。設定がfalse(デフォルト)の場合、このAPI自体コンピュータに読み込まれない。 文字列をURLエンコードするにはtextutils.urlEncode関数を利用するとよい。 なお、ここでは(プロトコルとしての)HTTPについての解説は行わない。 各メソッドのヘッダ (どんなヘッダが送信されているのか気になる人向け) HTTP APIではプレイヤーが任意のヘッダを指定することはできず、またComputerCraft側でも特にヘッダを指定していないため、Javaデフォルトのヘッダで送信されているものと思われる。 以下は各メソッドで送信されるリクエスト行およびヘッダ行の例。ちなみに、ゲーム内でpastebinプログラムを利用してPastebinでプログラムファイルを取得・投稿した時のもの(Javaバージョンは1.7.0 25)。 GETの例 GET /raw.php?i=smLqWBif HTTP/1.1 User-Agent Java/1.7.0_25 Host pastebin.com Accept text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection keep-alive POSTの例 POST /api/api_post.php HTTP/1.1 User-Agent Java/1.7.0_25 Host pastebin.com Accept text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection keep-alive Content-Length 219 request dan200.computer.core.apis.HTTPAPI で定義 http.request( url[, postData]) URLurl(文字列)にHTTPリクエストを送信する。 postData(文字列)を指定すると、POSTメソッドでメッセージボディとして送信される。postDataが省略またはnilの時はGETメソッドで送信される 戻り値:nil レスポンスはos.pullEvent関数でhttp_successまたはhttp_failureイベントを捕捉することで取得する。そのため、レスポンスを非同期的に取得することができる。 例: local url = "http //example.com/" http.request(url) while true do local event, sourceUrl, file = os.pullEvent() if event == "http_success" and sourceUrl == url then print(file.readAll()) file.close() break elseif event == "http_failure" and sourceUrl == url then print("Server didn t respond.") break end end http //example.com/(IANAのExampleドメイン)からウェブページをダウンロードする。 成功した場合はページの内容(HTML)が、失敗(タイムアウト)した場合は"Server didn t respond."が表示される。 get assets\computercraft\lua\bios.lua で定義 http.get( url ) URLurl(文字列)にHTTP GETリクエストを送信し、レスポンスを取得する 戻り値:テーブル型。取得したウェブサイトのファイルハンドル。ただし、取得に失敗した場合はnilが返る リクエストに対するレスポンスが返ってくるまで処理を停止する。内部的にはhttp.request関数とos.pullEvent関数を利用している。 例: local file = http.get("http //example.com/") if file ~= nil then print(file.readAll()) file.close() else print("Server didn t respond.") end http //example.com/(IANAのExampleドメイン)からウェブページをダウンロードする。 成功した場合はページの内容(HTML)が、失敗(タイムアウト)した場合は"Server didn t respond."が表示される。 post assets\computercraft\lua\bios.lua で定義 http.post( url, postData) URLurl(文字列)にHTTP POSTリクエストを送信し、レスポンスを取得する。postData(文字列)がメッセージボディとして送信される 戻り値:テーブル型。取得したウェブサイトのファイルハンドル。ただし、取得に失敗した場合はnilが返る リクエストに対するレスポンスが返ってくるまで処理を停止する。内部的にはhttp.request関数とos.pullEvent関数を利用している。 postDataが省略またはnilの場合は代わりに""(長さ0文字列)が使われる。
https://w.atwiki.jp/pipopipo555jp/pages/1240.html
Bloomberg.com,March 29 http //www.bloomberg.com/apps/news?pid=20601101 sid=aejf.BBUzbxQ refer=japan Osaka Court Rejects Suit Against Nobel Laureate Oe, Asahi Says By Ron Rhodes March 29 (Bloomberg) -- The Osaka District Court dismissed a lawsuit against Japanese Nobel laureate Kenzaburo Oe over writing that army officers coerced Okinawan civilians into mass suicides near the end of World War II, the Asahi newspaper said. The court sided yesterday with Oe, 73, and Iwanami Shoten Publishers in finding the Japanese military was ``deeply involved in the mass suicides and that Oe s 1970 book, ``Okinawa Notes, had ``reasonable data and grounds for the assertion, the newspaper said, citing Presiding Judge Toshimasa Fukami. The damage lawsuit was filed by Yutaka Umezawa, 91, the former garrison commander on Zamami Island in the Okinawa island chain, and Hidekazu Akamatsu, the 75-year-old brother of another commander on nearby Tokashiki Island. The two men will appeal the court s ruling, the newspaper said. Oe, who won the Nobel Prize in Literature in 1994, told the Asahi the court interpreted his book accurately in its ruling. The Battle of Okinawa, the last major battle in the Pacific in World War II, resulted in about 120,000 casualties, most of them civilians, representing about one-quarter of the island s population at the time, the newspaper said. To contact the reporter on this story Ron Rhodes in Tokyo at rrhodes3@bloomberg.net. 大阪地裁判決に対する各紙論評など
https://w.atwiki.jp/mainichi-matome/pages/2377.html
WaiWaiの記事を転載した英語サイト: [A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|数字] boku no JPOP.com 関連ページ boku no JPOP.com http //www.bokunojpop.com/ 部分転載 Living the rich life on 80,000 yen a month http //www.bokunojpop.com/index.php/News-Briefs/Living-the-rich-life-on-80000-yen-a-month.html Girls get misty-eyed over bespectacled blokes http //www.bokunojpop.com/index.php/News-Briefs/Girls-get-misty-eyed-over-bespectacled-blokes.html The dark side of baseball s brightest star http //www.bokunojpop.com/index.php/News-Briefs/The-dark-side-of-baseball-s-brightest-star.html Otaku nerd booms blows breath of fresh air into flirtatious Marilyn Monroe cafe http //www.bokunojpop.com/index.php/News-Briefs/-Otaku-nerd-booms-blows-breath-of-fresh-air-into-flirtatious-Marilyn-Monroe-cafe.html Busty shogi queen helps pad Japanese chess fan base http //www.bokunojpop.com/index.php/News-Briefs/Busty-shogi-queen-helps-pad-Japanese-chess-fan-base.html Swinging teen golfers under fire for rough play http //www.bokunojpop.com/index.php/News-Briefs/Swinging-teen-golfers-under-fire-for-rough-play.html Capsule hotels move up-market with VIP rooms http //www.bokunojpop.com/index.php/News-Briefs/Capsule-hotels-move-up-market-with-VIP-rooms.html Aichi won t panda to woman s unbearable wishes http //www.bokunojpop.com/index.php/News-Briefs/Aichi-won-t-panda-to-woman-s-unbearable-wishes.html 100 yen shops give you more than your money s worth http //www.bokunojpop.com/index.php/News-Briefs/100-yen-shops-give-you-more-than-your-money-s-worth.html Yoga purists bent out of shape over trendy twisted poses http //www.bokunojpop.com/index.php/News-Briefs/Yoga-purists-bent-out-of-shape-over-trendy-twisted-poses.html Lady bosses setting young guys hearts a-flutter http //www.bokunojpop.com/index.php/News-Briefs/Lady-bosses-setting-young-guys-hearts-a-flutter.html More gals look to untie men s marriage knots for no-strings-attached flings http //www.bokunojpop.com/index.php/News-Briefs/More-gals-look-to-untie-men-s-marriage-knots-for-no-strings-attached-flings.html Gal geeks jump aboard hip to be square boom http //www.bokunojpop.com/index.php/News-Briefs/Gal-geeks-jump-aboard-hip-to-be-square-boom.html Sweaty, smelly, cramped commuters squashed into state of rail rage http //www.bokunojpop.com/index.php/News-Briefs/Sweaty-smelly-cramped-commuters-squashed-into-state-of-rail-rage.html Tokyo terrorized by Sept.11 threat http //www.bokunojpop.com/index.php/News-Briefs/Tokyo-terrorized-by-Sept.11-threat.html Japan s biggest all-boy band tipped to go it alone http //www.bokunojpop.com/index.php/News-Briefs/Japan-s-biggest-all-boy-band-tipped-to-go-it-alone.html Wartime images of Germany and Japan a study in contrast http //www.bokunojpop.com/index.php/News-Briefs/Wartime-images-of-Germany-and-Japan-a-study-in-contrasts.html Frog in the throat no bull this time http //www.bokunojpop.com/index.php/News-Briefs/Frog-in-the-throat-no-bull-this-time.html Not-so-lonely single lasses turned off by pressure to turn on http //www.bokunojpop.com/index.php/News-Briefs/Not-so-lonely-single-lasses-turned-off-by-pressure-to-turn-on.html Cardboard robots wrestle into the hearts of fanatical fans http //www.bokunojpop.com/index.php/News-Briefs/Cardboard-robots-wrestle-into-the-hearts-of-fanatical-fans.html Gals swoon over Boy s Love media boom http //www.bokunojpop.com/index.php/News-Briefs/Gals-swoon-over-Boy-s-Love-media-boom.html Doctors driving patients to drink http //www.bokunojpop.com/index.php/News-Briefs/Doctors-driving-patients-to-drink.html Otaku outraged over cracks in make-up of maids at sexy servant hotel http //www.bokunojpop.com/index.php/News-Briefs/Otaku-outraged-over-cracks-in-make-up-of-maids-at-sexy-servant-hotel.html Jo no Kyoshitsu Sponsors feel the wrath of cruel TV drama http //www.bokunojpop.com/index.php/News-Briefs/Jo-no-Kyoshitsu-Sponsors-feel-the-wrath-of-cruel-TV-drama.html Snotty schools see measly manga in new light http //www.bokunojpop.com/index.php/News-Briefs/Snotty-schools-see-measly-manga-in-new-light.html Longful lasses nurture nerds in bid to wean them off wackiness http //www.bokunojpop.com/index.php/News-Briefs/Longful-lasses-nurture-nerds-in-bid-to-wean-them-off-wackiness.html Bon-odori Innocent dance or raunchy bop? http //www.bokunojpop.com/index.php/News-Briefs/Bon-odori-Innocent-dance-or-raunchy-bop.html Single gals fret over life s uncertainties http //www.bokunojpop.com/index.php/News-Briefs/Single-gals-fret-over-life-s-uncertainties.html Japan s most desirable divorcee gets herself a toy boy http //www.bokunojpop.com/index.php/News-Briefs/Japan-s-most-desirable-divorcee-gets-herself-a-toy-boy.html Controversial comic puts bitter touch to Korean craving http //www.bokunojpop.com/index.php/News-Briefs/Controversial-comic-puts-bitter-touch-to-Korean-craving.html Lonely lasses double as own make-believe friends to portray popularity http //www.bokunojpop.com/index.php/News-Briefs/Lonely-lasses-double-as-own-make-believe-friends-to-portray-popularity.html eisty fogeys fight it out in World Oyaji Battle http //www.bokunojpop.com/index.php/News-Briefs/Feisty-fogeys-fight-it-out-in-World-Oyaji-Battle.html Densha Otoko Japan recruits romantic otaku geeks to revive economy http //www.bokunojpop.com/index.php/News-Briefs/Densha-Otoko-Japan-recruits-romantic-otaku-geeks-to-revive-economy.html "Japan recruits romantic otaku geeks to revive economy" Shock resignation turns Japan s underworld upside down http //www.bokunojpop.com/index.php/News-Briefs/Shock-resignation-turns-Japan-s-underworld-upside-down.html Fallen-idol Beckham s spitting spat leaves gossip rags drooling http //www.bokunojpop.com/index.php/News-Briefs/Fallen-idol-Beckham-s-spitting-spat-leaves-gossip-rags-drooling.html 関連ページ Japan recruits romantic otaku geeks to revive economy WaiWaiの記事を転載した英語サイト:B
https://w.atwiki.jp/vocaloidenglishlyric/pages/439.html
【Tags 164 G Miku tG】 Original Music title good bye monochrome Romaji music title good bye monochrome Music Lyrics written, Voice edition by 164 Music arranged by 164 Singer(s) 初音ミク (Hatsune Miku) Click here for the original Japanese Lyrics English Lyrics (translated by motokokusanagi2009): It s calling me, echoing, pi po pa po I can see the blue dim light far from here It s calling me ― It reached me I m feeling its warmth and gentle song As I wanna see you, I struggle helplessly again and again Till the day you touch me Still here is colorless I m just sleeping It s calling me, echoing, ○△※♪ I m counting down my miracle to begin Feeling so lonely ― I struggle helplessly again and again Till the day you hold me Still I m colorless I m just sleeping Voices or lullabies They still have no meanings, not at all So that I can t understand them at all But someday can I grasp the meaning of it? Now, it s time to say good bye To this colorless room of mine Because I m delighted―― I scream again and again Till the day I forget the present time I m dead tired of crying So I ll just sleep Romaji lyrics (transliterated by motokokusanagi2009): boku o yobu hibiku pi po pa po usu akari tōku aoku mieru boku o yobu - todoku pi po pa po kanji teru ondo to yasashī uta o ai takute― agaku yo nando demo boku ni furete kureru sono hi made mada koko ni iro wa nakute tada nemuru dake boku o yobu hibiku ○△※♪ kazoe teru boku ga hajimaru kiseki o samishi kute ― agaku yo nando demo boku o daite kureru sono hi made mada boku ni iro wa nakute tada nemuru dake koe toka komori uta datoka ima wa nanimo nanimo nanimo mada wakara nai kotoba dakeredo itsuka imi ga wakaru no kana sā o wakare dayo boku no iro no nai kono heya to ureshikute―― sakebu yo nando demo ima o wasurete shimau sono hi made mō naki tsukareta boku wa tada nemuru dake
https://w.atwiki.jp/kusomaru/
Rocomaruとは? キャラクターデータ(5月1日現在) ヴァナ・ディールのデータ H-ID 00-2929616 ワールド Lakshmi ジョブ コルセア・暗黒 種族 タルタル♂ SS 取得レリミシエンピ Lv90アルマゲドン ネ実のデータ まーくん ◆etba66Y7HQux まーくん ◆//ze2v20z4UV このトリップのどちらかで降臨しますが、ネ実を引退すると1度いい、上のトリップを割っています。偽物注意。 この人は何をしたのですか? 水晶龍を主催した際、胴を希望していたにも関わらず、メテオ(時価4000~5000万)欲しさに マスター収集のシステムを悪用し、メテオ取り逃げをやらかしました。 マスター収集の悪用って? マスター収集は、収集者が999を出したという内部設定になり、出てる戦利品にもこれが適用され、 後からロットしても誰も勝てないようになってしまいます。 なんでこんな真似をしたの? メテオそのものよりも、その売却益によってラグナロクを作りたいとほざいてます。 ちなみに、ついこの間まではコルセアしかジョブが出せず、新ナイズルに参加したいが為に 養殖したジョブが暗黒です。養殖ゆえ、スキル・動きはお察しください状態です。 関連スレッド 公式フォーラム マスター収集について http //forum.square-enix.com/ffxi/threads/22955 利用者間でのトラブルに関する運営の考え方について http //forum.square-enix.com/ffxi/threads/23005 ネ実現行スレ(全てDat落ち) 楽鯖でメテオまる逃げ事件が発生7 http //awabi.2ch.net/test/read.cgi/ogame/1336149713/ 楽鯖でメテオデブ逃げ事件が発生8 http //awabi.2ch.net/test/read.cgi/ogame/1336322995/ 楽鯖でメテオデブ逃げ事件が発生9 http //awabi.2ch.net/test/read.cgi/ogame/1337505416/ ネ実過去スレ 楽鯖でメテオよし逃げ事件が発生! http //awabi.2ch.net/test/read.cgi/ogame/1335623810/ 楽鯖でメテオよし逃げ事件が発生2 http //awabi.2ch.net/test/read.cgi/ogame/1335721199/ 楽鯖でメテオよし逃げ事件が発生3 http //awabi.2ch.net/test/read.cgi/ogame/1335856595/ 楽鯖でメテオよし逃げ事件が発生4 http //awabi.2ch.net/test/read.cgi/ogame/1335962741/ 楽鯖でメテオよし逃げ事件が発生4(5スレ目) http //awabi.2ch.net/test/read.cgi/ogame/1335962812/ 楽鯖でメテオろこ逃げ事件が発生6 http //awabi.2ch.net/test/read.cgi/ogame/1336032387/ ネ実関連スレ Lakshmi62 http //awabi.2ch.net/test/read.cgi/ogame/1335806082/ Lakshmi63 http //awabi.2ch.net/test/read.cgi/ogame/1336197099/ オススメ最期のハゲガル祭り in楽鯖 http //awabi.2ch.net/test/read.cgi/ogame/1335800738/ オススメ最期のハゲガル祭り in楽鯖2 http //awabi.2ch.net/test/read.cgi/ogame/1336126581/ オススメ最期のハゲガル祭り in楽鯖3 http //awabi.2ch.net/test/read.cgi/ogame/1336314098/
https://w.atwiki.jp/isoroku_be/pages/176.html
情報 作者名:YouTubeダウンロードし放題 引用元:なでしこプログラム掲示板「HTTPグループ」 http //nade.jp-pro.net/bbs/bbs2/cbbs.cgi?mode=al2 namber=1219 更新 2012/01/27 Cookie取得を更新 エラー防止の真偽グループを追加 ダウンロード 概要 五十六さんの作品「TCPクライアントでHTTPっぽいものセット」(以下TCPセット) (http //nade.jp-pro.net/bbs/bbs2/cbbs.cgi?mode=al2 namber=911 感謝!!) を元に機能拡張・改善したライブラリです。 目標としては、簡単に利用できて、且つ、カスタマイズ性に飛んだライブラリを目指して作成しました。 TCPセットとの大まかな違いとしては、 ・TCPデータ取得→新HTTPデータ取得 ・グループとして利用できる ・不同期ダウンロード ・Cookieの自動取得 ・POST命令の削除(無念 後日また挑戦してみます) などです。 解説 「新HTTPデータ取得」は「HTTPデータ取得」と同じ使い方です。 HTTPグループの基本的な使い方は、URLや保存先、オプションなどを指定してから、「開始」です。 注意 HTTPグループに関わる全ての命令を本体の下に記述してください 本来ならば、本体のみを別ファイルにして「取り込む」命令を使用するのが望まれます HTTPグループにFILEを設定した時点でダウンロードとみなされます 逆にFILEを空にすればデータ取得になります 「母艦の終了した時」のイベントのかわりに「母艦終了時」を使用してください 追加した機能 グループ化 動的作成による今までの命令も使えます ダウンロードの不同期化 「同期はオフ」とすることで不同期ダウンロードができます しかし、タイマーで無理やり内蔵しているので多少バグがあります 動的にHTTPグループを作成し、同時ダウンロードを行う事ができます 経過表示のイベント化 経過表示時の行動を何度も書き換えることができるようになりました Cookie自動取得機能(意外と便利) Internet ExplorerのCookieを取得します 自動ページ転送機能 Locationがあれば再取得するようになりました 自動エンコード機能(初期状態ではオフ) 推定残り時間 レジューム(途中ダウンロード)の簡潔化 レジュームを指定しなくても、FILEが存在すればレジュームが使用できるようになりました 逆に強制的に使用しないようにするには「レジューム機能はオフ」とします 削除した機能 POST命令 サンプル使う人はGET命令より少ないのと グループが混じると条件分岐が多くて負担が多いので 特に意識しなくてよいこと SizeOver機能 動画などの大容量のファイルを「データ取得」するとメモリが足りなくなってしまいます なので、ファイルが0.5MGバイト以上の場合は一時的に保存するようにしました チャンクによるバグの修正 チャンクは受信し終わってからまとめて処理するようにしました TCPクライアントと統合 「nakonet.nako」も取り込まなくて済みます (TCPクライアントと併用しても問題ありません) タイマーとの統合 タイマーを内蔵しているので、不同期ダウンロードの際にタイマーを作成する必要がありません TCP自動切断機能(重要) ライブラリ内部でHTTPグループを一括管理しているので、終了時にTCPを手動で切断する必要がなくなりました。 (nakonet.dllのバグでTCPを切断しないと終了できない問題を克服) メモリ節約のための変数宣言 変数を厳密に宣言することで余計なメモリを節約し、関数外の変数が影響することを防ぎます 計算を最小限かつ高速化 サンプル 本体の後ろに置いてください 新HTTP関数 「http //www.google.co.jp/」の新HTTPデータ取得を言う 一番簡単なグループ HTTP1とはHTTPグループ HTTP1=「http //www.youtube.com/」 HTTP1で開始 それを言う 高度な静的グループ 経過詳細テキストとは文字列 平均速度とは数値 受信サイズとは数値 受信予定サイズとは数値 経過バーとはプログレスバー 経過詳細とはラベル 経過詳細の位置=経過バーの右側 中止ボタンとはボタン HTTP2とはHTTPグループ 中止ボタンのクリックした時は~ HTTP2の有効切替#HTTP2の停止判定=1 HTTP2について URL=「http //www.youtube.com/」 #FILE=「{デスクトップ}sample.html」 #HEAD取得判定=1 #レジューム機能=0 #自動エンコード機能=1 経過表示時は~ 経過詳細テキスト=空 経過パーセント=HTTP2の経過パーセント 平均速度=(HTTP2の平均速度/1024/1024)を1で小数点切り上げ 瞬間速度=(HTTP2の瞬間速度/1024/1024)を1で小数点切り上げ 推定残り=HTTP2の推定残り 経過詳細テキストに「{経過パーセント}% 平均速度 {平均速度}MB/s 瞬間速度 {瞬間速度}MB/s 推定残り {推定残り}秒」を配列追加 受信サイズ=(HTTP2の受信Size/1024/1024)を1で小数点切り上げ 受信予定サイズ=(HTTP2の受信予定Size/1024/1024)を1で小数点切り上げ 経過詳細テキストに「受信 {受信サイズ}/{受信予定サイズ}MB」を配列追加 もし、経過パーセント=100ならば 経過詳細テキスト=「ダウンロード完了」 経過詳細=経過詳細テキスト 経過バー=HTTP2の経過パーセント レジューム機能=0 経過表示間隔=0.5 データとは文字列 データ=開始 データを言う IDを利用した動的グループの同時ダウンロード URL一覧とは配列 URL一覧に「http //www.google.co.jp/」を配列追加 URL一覧に「http //www.yahoo.co.jp/」を配列追加 URL一覧に「http //ja.wikipedia.org/wiki/」を配列追加#「http //ja.wikipedia.org/wiki/メインページ」に転送 URL一覧に「http //www.youtube.com/」を配列追加 URL一覧に「http //www.apple.com/jp/」を配列追加 URL一覧に「http //twitter.com/」を配列追加 IDとは数値 ID一覧とは配列 URL一覧で反復 ID=ActiveHTTPG_ID;ID一覧にIDを配列追加 Panel[回数]を経過パネルとして作成 Panel[回数]→Y=(回数-1)*60 Panel[回数]→テキスト1=対象 HTTPG[ID]→URL=対象 HTTPG[ID]→同期=0 HTTPG[ID]→タグ=回数 HTTPG[ID]→経過表示時は~ 経過率とは数値=自身→経過パーセント 受信S=(自身→受信Size/1024)を1で小数点切り上げ 平均速度とは数値=(自身→平均速度/1024/1024)を1で小数点切り上げ 瞬間速度とは数値=(自身→瞬間速度/1024/1024)を1で小数点切り上げ 推定残りとは数値=自身→推定残り Panel[自身→タグ]→値=経過率 TEXTとは文字列 TEXT[0]=「{経過率}% {受信S}kb」 TEXT[1]=「平均 {平均速度}MB/s 瞬間 {瞬間速度}MB/s 残り時間 {推定残り}秒」 もし、経過率=100ならば TEXT[1]=「ダウンロード完了」 Panel[自身→タグ]→テキスト2=TEXT 描画処理反映 ID一覧で反復;HTTPG[対象]→開始() ■経過パネル ・Y ←Y設定 ・値 ←値設定 ・テキスト1 ←テキスト1設定 ・テキスト2 ←テキスト2設定 ・値設定(S)~経過バーOBJ→値=S ・テキスト1設定(S)~ラベル1OBJ→テキスト=S ・テキスト2設定(S)~ラベル2OBJ→テキスト=S ・Y設定(S)~ 経過バーOBJ→Y=S それ=経過バーOBJ→右側;ラベル1OBJ→位置=それ それ=経過バーOBJ→下側;ラベル2OBJ→位置=それ ・パネルOBJ ・経過バーOBJ ・ラベル1OBJ ・ラベル2OBJ ・作る~ 経過バーOBJをプログレスバーとして作成 ラベル1OBJをラベルとして作成 ラベル2OBJをラベルとして作成 ラベル1OBJ→テキスト=空 それ=経過バーOBJ→右側;ラベル1OBJ→位置=それ ラベル2OBJ→テキスト=空 それ=経過バーOBJ→下側;ラベル2OBJ→位置=それ 本体 !変数宣言が必要 最大HTTP数とは数値=20 !HTTP_ID一覧とは配列 !__TCPIDとは数値=0 母艦終了時とは変数 母艦終了時は~何もしない 経過表示時イベントとは変数 経過表示時イベントは~ それ=自身→経過パーセント;母艦=それ 「%」 母艦の終了可能=0 母艦の閉じた時は~ 母艦終了時 HTTP_ID一覧で反復 エラー無視#一応エラー回避 「{対象}→終了時処理」をナデシコする 母艦の終了可能=1;おわり !初期UA=「HTTP」 !ERROR_TCP_403=「HTTP_403 "Forbidden" アクセスが認められていません。」 !ERROR_TCP_404=「HTTP_404 "NotFound" 見つかりません」 !ERROR_TIMEOUT=「HTTP_TIMEOUT タイムアウトしました」 !ERROR_STOP=「HTTP_STOP ユーザーによって停止されました」 ■真偽 ・値 ←値設定 →値取得 デフォルト ・{整数}F値 ・値設定(V)~ もし、(V=0)||(V=1)ならばF値=V 違えばエラー発生 ・値取得~_=F値 ■HTTPグループ # ↓読み書きOK # 基本オプション 初期化されないので毎回書き換えるように ・URL{="http //www.google.co.jp/"} ←URL設定 →URL取得 デフォルト ・FILE ←FILE設定 →FILE取得 ・{整数/*真偽値*/}HEAD取得判定 ・{イベント}経過表示時 # 高度なオプション ・{イベント}終了時イベント ・{イベント}エラー時#~エラーメッセージと言う ・{ハッシュ}オプション# 送信ヘッダに追加 UAなど ・{ハッシュ}Cookie ・{真偽}有効{=1} ←有効設定 →有効取得 ・{真偽}同期{=1} ・{真偽}Cookie自動取得{=1} # InternetExplorerのCookieを適用 ・{真偽}レジューム機能{=1} ・{真偽}自動ページ転送{=1} ・{真偽}自動エンコード機能# UTF8を自動でエンコード ・{数値}経過表示間隔{=0.1}# 経過表示する間隔(0.1秒ごと) ・{数値}瞬間速度幅{=5} ・{数値}TimeOut秒数{=5} ・{数値}HTTPVer{=1.1} ・ポケット ・タグ# 一時データの格納に使える # ↓読込のみOK ・FILEDATA ・HEAD # 経過表示に使える変数 ・{整数}通信中・{整数}受信回数 ・{整数}受信予定Size・{整数}受信Size ・{整数}開始時間 ・{整数}経過時間 ・{整数}経過パーセント ・{整数}推定残り# 秒 ・{数値}平均速度・{数値}瞬間速度# b/s ・{整数}瞬間Size・{整数}前時間・{整数}瞬間時間 ・{整数}TimeOut回数 #----- ・{ハッシュ}HEAD_HASH・{整数}StatusNum{=200} ・Pass ・送信HEAD・{整数}出力H ・{真偽}一回目判定{=1} ・{真偽}Download判定・{真偽}Chunk判定 ・{真偽}Resume判定・{真偽}SizeOver判定 ・{真偽}中断判定・{真偽}停止判定 ・Host{="www.google.co.jp"}・{整数}Port{=80} ・{整数}ID # フェイク ・{非公開}FURL ・URL取得~FURLで戻る ・{非公開}FFILE ・FILE取得~FFILEで戻る ・{非公開}F有効{=1} ・有効取得~F有効で戻る ・{非公開}Option ・{非公開}FERROR ←エラー設定 ・エラー設定(S)~エラーメッセージ=S;エラー時 #---------------------------------------------------------------- ・開始~ FILEDATA=空;HEAD=空;終了時処理#一応 Option=オプション もし、Option@「User-Agent」=空ならば、Option@「User-Agent」=初期UA もし、Option@「Host」=空ならば、Option@「Host」=Host もし、Cookie自動取得=1ならば、Cookie=FURLのCookie取得 もし、Cookie≠空ならば、Option@「Cookie」=Cookieの改行を「;」に置換 もし、Download判定=1ならば もし、(FFILEの存在=1)AND(レジューム機能=0)ならば FFILEをファイル完全削除 出力H=FFILEを「書」でファイルストリーム開く もし、FFILEの存在=1ならば、 Resume判定=1 受信Size=FFILEのファイルサイズ Option@「Range」=「bytes={受信Size}-」 出力Hで受信Sizeにファイルストリーム位置設定 送信HEAD=Optionを逆HTTPヘッダハッシュ変換("GET",Pass,HTTPVer);接続 もし、同期=0ならば TIMER_OBJ=VCL_CREATE(自身,名前,VCL_GUI_TIMER) VCL_SET(TIMER_OBJ,VCL_PROP_VALUE,経過表示間隔*1000) VCL_SET(TIMER_OBJ,VCL_PROP_ENABLED,1);戻る オンの間 メインループ もし、(通信中=0)AND(一回目判定=0)ならば抜ける (経過表示間隔)秒待つ メインループ後 もし、HEAD取得判定=1ならば、HEADで戻る 違えば、FILEDATAで戻る ・メインループ~ もし、停止判定=1ならば、終了時処理;FERROR=ERROR_STOP;戻る 経過表示時 もし、一回目判定=1ならば、 TimeOut回数に1を直接足す もし、(経過表示間隔*TimeOut回数) TimeOut秒数ならば 終了時処理;FERROR=ERROR_TIMEOUT;戻る 違えば、TimeOut回数=0 ・メインループ後~ 経過表示時 もし、Download判定=1ならば 出力Hで0にファイルストリーム位置設定 FILEDATA=出力Hで(0.5*1024*1024)をファイルストリーム読む 出力Hをファイルストリーム閉じる #自動エンコード機能 もし、自動エンコード機能=1ならば Typeとは文字列=HEAD_HASH@「Content-Type」 Typeを「^([^;]*);」で正規表現マッチ もし、抽出文字列[0]=「text/html」ならば Typeを「charset=([^\s]*)」で正規表現マッチ もし、抽出文字列[0]=「utf-8」ならば FILEDATA=FILEDATAを「UTF8」から「SJIS」へ文字コード変換 もし、Download判定=1ならば、FILEDATAをFFILEに保存 終了時イベント;終了時処理 ・終了時処理~ 通信中=0;切断 もし、TIMER_OBJ≠空ならば VCL_SET(TIMER_OBJ,VCL_PROP_ENABLED,0);TIMER_OBJ=空 もし、SizeOver判定=1ならば もし、出力Hのファイルストリームサイズ≠-1ならば 出力Hをファイルストリーム閉じる FFILEをファイル完全削除 Download判定=0;FILE=空; # 変数の初期化 一回目判定=1;TimeOut回数=0;SizeOver判定=0;停止判定=0; 受信回数=0;受信予定Size=0;受信Size=0;出力H=0; 経過パーセント=0;平均速度=0;瞬間速度=0; ・接続した時~ 通信中=1;開始時間=システム時間; 送信HEADを送信 ・受信した時~ 受信回数に1を直接足す 受信DATAとは文字列=受信 もし、一回目判定=1ならば 一回目判定=0 HEAD=受信DATAから「{~}{~}」まで切り取る もし、HEAD取得判定=1ならば、経過パーセント=100;通信中=0;切断;戻る HEAD_HASH=HEADをHTTPヘッダハッシュ変換 StatusNum=HEAD_HASH@「HTTP.Response」#正しい使いかたではない もし、StatusNum≠200ならば StatusNumで条件分岐 403ならば、経過パーセント=100;通信中=0;切断;FERROR=ERROR_TCP_403;戻る 404ならば、経過パーセント=100;通信中=0;切断;FERROR=ERROR_TCP_404;戻る 301ならば、HEAD_HASH@「Location」にTCP転送;戻る 302ならば、HEAD_HASH@「Location」にTCP転送;戻る 303ならば、HEAD_HASH@「Location」にTCP転送;戻る #レジュームで既にダウンロード完了しているとき/Rangeが不正な場合 416ならば、経過パーセント=100;通信中=0;切断;戻る 違えば、#StatusNumを言う もし、HEAD_HASH@「Content-Length」≠空ならば 受信予定Size=HEAD_HASH@「Content-Length」 もし、Resume判定=1ならば 受信予定Sizeに受信Sizeを直接足す もし、(Download判定=0)AND(受信予定Size (0.5*1024*1024))ならば FILE=「download_{テンポラリフォルダ}{開始時間}.bak」 出力H=FFILEを「書」でファイルストリーム開く SizeOver判定=1;Download判定=1; もし、HEAD_HASH@「Transfer-Encoding」=「chunked」ならば、Chunk判定=1 前時間=開始時間 瞬間Sizeに(受信DATAのバイト数)を直接足す 受信Sizeに(受信DATAのバイト数)を直接足す 経過時間=システム時間-開始時間 経過パーセント=INT(受信Size/受信予定Size*100) 平均速度=受信Size/経過時間*1000 もし、受信回数%瞬間速度幅=0ならば 瞬間時間=システム時間-前時間;前時間=システム時間 瞬間速度=瞬間Size/瞬間時間*1000;瞬間Size=0; 推定残り=INT((受信予定Size-受信Size)/平均速度) もし、Chunk判定=0ならば もし、Download判定=0ならば、FILEDATAに受信DATAを追加 違えば、出力Hで受信DATAをファイルストリーム書く もし、経過パーセント =100ならば 経過パーセント=100;通信中=0;切断;戻る; 違えば FILEDATAに受信DATAを追加 FILEDATAの(FILEDATAのバイト数-4)から1バイト抜き出す もし、それ=「0」ならば FILEDATA=FILEDATAからChunkData抽出 もし、Download判定=1ならば 出力HでFILEDATAをファイルストリーム書く FILEDATA=空 経過パーセント=100;通信中=0;切断;戻る ・URL設定(S)~ FURL=S Host=FURLからURLドメイン名抽出 もし、(FURLを「 (\d+)\/」で正規表現マッチ)≠空ならば、Port=抽出文字列[0] FURLを「http \/\/[^\/]+(\/.*)」で正規表現マッチ Pass=抽出文字列[0] ・FILE設定(S)~ FFILE=S もし、FFILE≠空ならば、Download判定=1 違えば、Download判定=0 ・有効設定(S)~ F有効=S もし、通信中=1ならば もし、F有効=1ならば もし、中断判定=1ならば 一回目判定=1;Resume判定=1;中断判定=0; Option@「Range」=「bytes={受信Size}-」 送信HEAD=Optionを逆HTTPヘッダハッシュ変換("GET",Pass,HTTPVer);接続 違えば、切断;中断判定=1 ・有効切替~ もし、F有効=0ならば、有効=1 違えば、有効=0 ・停止~停止判定=1 ・TCP転送(Sに)~ 切断 もし、自動ページ転送=0ならば、経過パーセント=100;通信中=0;戻る URL=S;一回目判定=1; もし、Option@「User-Agent」=空ならば、Option@「User-Agent」=初期UA もし、Option@「Host」=空ならば、Option@「Host」=Host もし、Cookie自動取得=1ならば、Cookie=FURLのCookie取得 もし、Cookie≠空ならば、Option@「Cookie」=Cookieの改行を「;」に置換 送信HEAD=Optionを逆HTTPヘッダハッシュ変換("GET",Pass,HTTPVer);接続 ・{非公開}TIMER_OBJ ・時満ちた時~ メインループ もし、(通信中=0)AND(一回目判定=0)ならば VCL_SET(TIMER_OBJ,VCL_PROP_ENABLED,0) メインループ後 ・受信データ・エラーメッセージ・{非公開}TCPID{=0}・{非公開}オブジェクト ・接続~TCP_COMMAND(TCPID,"connect","{Host} {Port}") ・切断~TCP_COMMAND(TCPID,"disconnect",0) ・送信(Sを)~TCP_COMMAND(TCPID, "send", S) ・受信~TCP_COMMAND(TCPID,"recv",0)で戻る ・作る~ TCPID=__TCPID;__TCPIDに1を直接足す; TCP_COMMAND(TCPID,"create",自身→名前) HTTP_ID一覧に名前を配列追加 ■TAG #タイマーに追加 ・タグ・ポケット ●逆HTTPヘッダハッシュ変換(SをMethod,Pass,HTTP_Ver) HEAD_TOPとは文字列=「{Method} {Pass} HTTP/{HTTP_Ver}」 HEAD_BTTOMとは配列 もし、S@「UA」≠空ならば、S@「UA」=S@「User-Agent」 Sの「UA」をハッシュキー削除 Sのハッシュキー列挙で反復 もし、S@対象≠空ならば、HEAD_BTTOMに「{対象} {S@対象}」を配列追加 「{HEAD_TOP}{~}{HEAD_BTTOM}{~}{~}」で戻る ●ChunkData抽出(Sの|Sから) 結果とは文字列;DATAとは文字列;ChunkSizeとは数値 オンの間 ChunkSize=INT(「${Sから改行まで切り取る}」) もし、(ChunkSize=「0」)OR(ChunkSize=空)ならば抜ける DATA=Sの1から(ChunkSize)バイト抜き出す 結果にDATAを追加 Sの1から(ChunkSize+2)バイト削除 もし、DATA=空ならば抜ける 結果で戻る ●Cookie取得(URLから|URLの|URLを) 結果とはハッシュ;Hとは数値; DATAとは文字列;DATA配列とは配列; URLを「http //(? www\.)*([^\/]+\/)」で正規表現マッチ Domainとは文字列=抽出文字列[0] 「{テンポラリフォルダ}\Cookies\*.txt」の全ファイル列挙で反復 H=対象を「読」でファイルストリーム開く DATA=Hで(対象のファイルサイズ)をファイルストリーム読む Hをファイルストリーム閉じる オンの間 DATAで「*」まで切り取る エラー監視#壊れている可能性があるので DATA配列=それの配列上下空行削除 エラーならば続ける もし、DATA配列=空ならば抜ける もし、DATA配列[2]=Domainならば 結果@DATA配列[0]=DATA配列[1] #結果=結果の改行を「;」に置換 結果で戻る HTTPGとは変数;TIMERとは変数; 新HTTPオプションとはハッシュ;HTTPG一覧とはハッシュ; ●HTTPG準備(S) (S)回 HTTPG[回数]をHTTPグループとして作成 HTTPG[回数]→ID=回数 HTTPG一覧@回数=0 ●新HTTPデータ取得(URLから|URLの|URLを) IDとは数値=ActiveHTTPG_ID HTTPG[ID]→URL=URL HTTPG[ID]→経過表示時は~経過表示時イベント HTTPG[ID]→オプション=新HTTPオプション HTTPG[ID]→FILE=空;HTTPG[ID]→HEAD取得判定=0; HTTPG[ID]→開始 HTTPG一覧@ID=0 HTTPG[ID]→FILEDATAで戻る ●新HTTPヘッダ取得(URLから|URLの|URLを) IDとは数値=ActiveHTTPG_ID HTTPG[ID]→URL=URL HTTPG[ID]→経過表示時は~経過表示時イベント HTTPG[ID]→オプション=新HTTPオプション HTTPG[ID]→FILE=空;HTTPG[ID]→HEAD取得判定=1; HTTPG[ID]→開始 HTTPG一覧@ID=0 HTTPG[ID]→HEADで戻る ●新HTTPダウンロード(URLをFILEへ|URLからFILEに) IDとは数値=ActiveHTTPG_ID HTTPG[ID]→URL=URL HTTPG[ID]→経過表示時は~経過表示時イベント HTTPG[ID]→オプション=新HTTPオプション HTTPG[ID]→FILE=FILE;HTTPG[ID]→HEAD取得判定=0; HTTPG[ID]→開始 HTTPG一覧@ID=0 HTTPG[ID]→HEADで戻る ●ActiveHTTPG_ID (最大HTTP数)回 もし、HTTPG一覧@回数=0ならば HTTPG一覧@回数=1;回数で戻る HTTPG準備(20)#最大20個のHTTPグループが利用できます !変数宣言が不要 総合 - 今日 - 人 昨日 - 人 名前 コメント